home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Linux / SLAX 6.0.8 / slax-6.0.8.iso / slax / base / 006-devel.lzm / usr / include / libxslt / documents.h < prev    next >
Encoding:
C/C++ Source or Header  |  2008-07-28  |  2.7 KB  |  94 lines

  1. /*
  2.  * Summary: interface for the document handling
  3.  * Description: implements document loading and cache (multiple
  4.  *              document() reference for the same resources must
  5.  *              be equal.
  6.  *
  7.  * Copy: See Copyright for the status of this software.
  8.  *
  9.  * Author: Daniel Veillard
  10.  */
  11.  
  12. #ifndef __XML_XSLT_DOCUMENTS_H__
  13. #define __XML_XSLT_DOCUMENTS_H__
  14.  
  15. #include <libxml/tree.h>
  16. #include "xsltexports.h"
  17. #include "xsltInternals.h"
  18.  
  19. #ifdef __cplusplus
  20. extern "C" {
  21. #endif
  22.  
  23. XSLTPUBFUN xsltDocumentPtr XSLTCALL    
  24.         xsltNewDocument        (xsltTransformContextPtr ctxt,
  25.                      xmlDocPtr doc);
  26. XSLTPUBFUN xsltDocumentPtr XSLTCALL    
  27.             xsltLoadDocument    (xsltTransformContextPtr ctxt,
  28.                      const xmlChar *URI);
  29. XSLTPUBFUN xsltDocumentPtr XSLTCALL    
  30.             xsltFindDocument    (xsltTransformContextPtr ctxt,
  31.                      xmlDocPtr doc);
  32. XSLTPUBFUN void XSLTCALL        
  33.             xsltFreeDocuments    (xsltTransformContextPtr ctxt);
  34.  
  35. XSLTPUBFUN xsltDocumentPtr XSLTCALL    
  36.             xsltLoadStyleDocument    (xsltStylesheetPtr style,
  37.                      const xmlChar *URI);
  38. XSLTPUBFUN xsltDocumentPtr XSLTCALL    
  39.             xsltNewStyleDocument    (xsltStylesheetPtr style,
  40.                      xmlDocPtr doc);
  41. XSLTPUBFUN void XSLTCALL        
  42.             xsltFreeStyleDocuments    (xsltStylesheetPtr style);
  43.  
  44. /*
  45.  * Hooks for document loading
  46.  */
  47.  
  48. /**
  49.  * xsltLoadType:
  50.  *
  51.  * Enum defining the kind of loader requirement.
  52.  */
  53. typedef enum {
  54.     XSLT_LOAD_START = 0,    /* loading for a top stylesheet */
  55.     XSLT_LOAD_STYLESHEET = 1,    /* loading for a stylesheet include/import */
  56.     XSLT_LOAD_DOCUMENT = 2    /* loading document at transformation time */
  57. } xsltLoadType;
  58.  
  59. /**
  60.  * xsltDocLoaderFunc:
  61.  * @URI: the URI of the document to load
  62.  * @dict: the dictionary to use when parsing that document
  63.  * @options: parsing options, a set of xmlParserOption
  64.  * @ctxt: the context, either a stylesheet or a transformation context
  65.  * @type: the xsltLoadType indicating the kind of loading required
  66.  *
  67.  * An xsltDocLoaderFunc is a signature for a function which can be
  68.  * registered to load document not provided by the compilation or
  69.  * transformation API themselve, for example when an xsl:import,
  70.  * xsl:include is found at compilation time or when a document()
  71.  * call is made at runtime.
  72.  *
  73.  * Returns the pointer to the document (which will be modified and
  74.  * freed by the engine later), or NULL in case of error.
  75.  */
  76. typedef xmlDocPtr (*xsltDocLoaderFunc)        (const xmlChar *URI,
  77.                          xmlDictPtr dict,
  78.                          int options,
  79.                          void *ctxt,
  80.                          xsltLoadType type);
  81.  
  82. XSLTPUBFUN void XSLTCALL
  83.         xsltSetLoaderFunc        (xsltDocLoaderFunc f);
  84.  
  85. /* the loader may be needed by extension libraries so it is exported */
  86. XSLTPUBVAR xsltDocLoaderFunc xsltDocDefaultLoader;
  87.  
  88. #ifdef __cplusplus
  89. }
  90. #endif
  91.  
  92. #endif /* __XML_XSLT_DOCUMENTS_H__ */
  93.  
  94.